#include <stdio.h>

typedef struct {
    int x;
    int y;
} Point;

// Public interface
Point* Point_create(int x, int y) {
    Point* p = (Point*)malloc(sizeof(Point));
    p->x = x;
    p->y = y;
    return p;
}

void Point_print(Point* p) {
    printf("Point: (%d, %d)\n", p->x, p->y);
}

void Point_destroy(Point* p) {
    free(p);
}

int main() {
    Point* point = Point_create(3, 4);
    Point_print(point);
    Point_destroy(point);
    return 0;
}